When building a solution around a spreadsheet model, it is often necessary to provide functionality beyond the functionality built into the spreadsheet application. This is particularly applicable to network-based services where there may be fewer features,
However, providing for extensibility in network-based services is complicated. For example, the actual calculation service may be secure, and unlike the personal computer running the spreadsheet application locally, the network-based service is rarely “owned” by the user creating/running a workbook (or other type of file format) model. Consequently, it is generally infeasible to run end-user code as part of a model due to reliability and security concerns of the overall service.